package com.lam.dormitory.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lam.dormitory.entity.Role;
import com.lam.dormitory.util.ResponseTemplate;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author lam
 * @since 2019-12-20
 */
public interface IRoleService extends IService<Role> {

    /**
     * 通过用户Id查询角色集合
     * @param userId
     * @return
     */
    List<Role> selectRoleByUserId(Long userId);

    /**
     * 根据角色名字查询实体
     * @param name
     * @return
     */
    Role selectRoleByName(String name);

    /**
     * 根据roleId,name,description查询角色集合
     * @param role
     * @return
     */
    List<Role> selectByRole(Role role);

    /**
     * 根据角色id保存分配权限
     * @param roleId
     * @param permissionIds
     * @return list
     */
    ResponseTemplate addAssignPermission(Long roleId, List<Long> permissionIds);

//    /**
//     * 根据用户id查询角色集合
//     *
//     * @param userId
//     * @return set
//     */
//    Set<String> findRoleByUserId(String userId);
//
//    /**
//     * 根据条件查询角色列表
//     *
//     * @param role
//     * @return list
//     */
//    List<Role> selectRoles(Role role);
//
//    /**
//     * 角色id下的所有用户
//     *
//     * @param roleId
//     * @return list
//     */
//    List<User> findByRoleId(String roleId);
//
//    /**
//     * 批量查询角色id下的所有用户
//     *
//     * @param roleIds
//     * @return list
//     */
//    List<User> findByRoleIds(List<String> roleIds);
//
//    /**
//     * 根据roleId查询角色列表
//     *
//     * @param roleId 角色id
//     * @return list
//     */
//    List<Role> selectByRoleId(String roleId);
//
//    /**
//     * 根据角色id查询权限集合
//     *
//     * @param roleId
//     * @return list
//     */
//    List<Permission> findPermissionsByRoleId(String roleId);
//
//    /**
//     * 根据角色id保存分配权限
//     *
//     * @param roleId
//     * @param permissionIdsList
//     * @return list
//     */
//    ResponseVo addAssignPermission(String roleId, List<String> permissionIdsList);
//
//    /**
//     * 测试分配权限
//     *
//     * @param roleId
//     * @param permissionIdsList
//     * @return
//     */
//    ResponseVo testAddAssignPermission(String roleId, List<String> permissionIdsList);
//
//    /**
//     * 插入角色
//     *
//     * @param role
//     * @return int
//     */
//    int insert(Role role);
//
//    /**
//     * 批量更新状态（删除）
//     *
//     * @param roleIds
//     * @param status
//     * @return int
//     */
//    int updateStatusBatch(List<String> roleIds, Integer status);
//
//    /**
//     * 根据角色id更新角色信息
//     *
//     * @param role
//     * @return int
//     */
//    int updateByRoleId(Role role);
//
//
//    /**
//     * 根据id查询角色
//     *
//     * @param id
//     * @return role
//     */
//    Role findById(Integer id);


}
